<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="../../org/angular.min.js"></script>
</head>

<body ng-app="app" ng-controller="ctrl">
    <table width="500" border="1">
        <tr>
            <th>网站</th>
            <th>url</th>
        </tr>
        <tr ng-repeat="d in data">
            <td>{{d.title}}</td>
            <td>{{d.url}}</td>
        </tr>
    </table>

    <table width="500" border="1">
        <tr>
            <th>网站</th>
            <th>url</th>
        </tr>
        <tr ng-repeat="a in all">
            <td>{{a.title}}</td>
            <td>{{a.url}}</td>
        </tr>
    </table>
    <script>
        var m = angular.module('app', []);
        //创建一个获取数据的服务
        m.factory('webService', ['$http', function($http) {
            return {
                //方式一：利用回调函数的闭包获取异步请求的数据，不建议使用
                get: function(callback) {
                    $http.get('1.php', {
                        cache: true
                    }).then(function(res) {
                        callback(res);
                    })
                },
                //方式二：利用$http返回的promise对象，获取异步请求的数据，建议
                all: function() {
                    return $http.get('1.php', {
                        cache: true
                    });
                }
            }
        }])
        m.controller('ctrl', ['$scope', 'webService', function($scope, webService) {
            //方式一：回调获取数据，不建议
            webService.get(function(res) {
                $scope.data = res.data;
            })
            //方式二： 利用返回的promise，绑定数据
            var promise = webService.all();
            promise.then(function(res) {
                $scope.all = res.data;
            })
        }])
    </script>
</body>

</html>
